Boolean satisfiability problem